package com.eb.bi.common.util;
/*该类实现对对象的序列化和反序列化封装*/
import java.io.*;
public class FileSerializable {
	private static FileSerializable ebSerializable=null;
	//将无参构造方法设为私有，防止外界直接new该类的实例
	private FileSerializable(){}
	//创建该类实例的单例模式
	public static FileSerializable getInstance(){
		if(ebSerializable==null){
			ebSerializable=new FileSerializable();
		}
		return ebSerializable;
	}
	
	//该方法实现对对象的序列化操作,需要传入目标文件，要进行序列化的对象
	public void serialization(String fileName,Object obj){
		try {
			//根据传递过来的目标文件名创建文件输出流对象
			FileOutputStream fos=new FileOutputStream(fileName);
			//根据文件输出流创建对象输出流对象
			ObjectOutputStream oos=new ObjectOutputStream(fos);
			//将对象输出到流中
			oos.writeObject(obj);
			//关闭流
			fos.close();
			oos.close();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	//该方法用于从指定的流文件中读取对象
	public Object deSerialization(String fileName){
		Object obj=null;
		try {
			//根据指定的目标文件名创建文件读取流
			FileInputStream fis=new FileInputStream(fileName);
			//根据文件读取流创建对象读取流
			ObjectInputStream ois=new ObjectInputStream(fis);
			//执行读操作
			obj=ois.readObject();
			//关闭流
			fis.close();
			ois.close();
			
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return obj;		
	}
}
